package com.diaohaiwen.framework.mq.rocket.properties;

import lombok.Data;

/**
 * @author 刁海文
 * @since 2024/1/16 21:07
 */
@Data
public class ProducerProperties {
    /**
     * 是否启用
     */
    private boolean enable = true;
    /**
     * 生产组的名称，一类Producer的标识
     */
    private String producerGroup = "DEFAULT_PRODUCER";

    /**
     * 自动创建topic的话，默认queue数量是多少
     */
    private int defaultTopicQueueNums = 4;
    /**
     * 默认的发送超时时间, 3000，单位毫秒
     */
    private int sendMsgTimeout = 3000;
    /**
     * 消息body需要压缩的阈值,1024*4,4K
     */
    private int compressMsgBodyOverHowmuc = 4096;

    /**
     * 同步发送失败的话，rocketmq内部重试多少次
     */
    private int retryTimesWhenSendFailed = 2;

    /**
     * 异步发送失败的话，rocketmq内部重试多少次
     */
    private int retryTimesWhenSendAsyncFailed = 2;

    /**
     * 发送的结果如果不是SEND_OK状态，是否当作失败处理而尝试重发
     */
    private boolean retryAnotherBrokerWhenNotStoreOK = false;
    /**
     * 客户端验证，允许发送的最大消息体大小 默认为 4M
     */
    private int maxMessageSize = 4;


}
